import auth from '@/api/auth.js'

const state={
    user:null,
    isLogin:false

}

const getters={
    user:state=>state.user,
    isLogin:state=>state.isLogin


}

const mutations={
    setUser(state,payload){
        state.user = payload.user
    },

    setLogin(state,payload){
        state.isLogin = payload.isLogin
    }

}

const actions = {
    login({commit},{username,password}){
        return auth.login({username,password})
            .then(res=>{
                commit('setUser',{user:res.data})
                commit('setLogin',{isLogin:true})
            })
    },

    async register({commit},{username,password}){
        let res = await auth.register({username,password})
        commit('setUser',{user:res.data})
        commit('setLogin',{isLogin:true})
        return res.data
    },

    async logout({commit}){
        await auth.logout()
        commit('setUser',{user:null})
        commit('setLogin',{isLogin:false})
    },

    async checkLogin({commit,state}){
        if(state.isLogin) return true
        let res = await auth.getInfo()
        commit('setLogin',{isLogin:res.isLogin})
        if(!res.isLogin) return false
        commit('setUser',{user:res.data})
        return true
    }
}

export default {
    state,
    getters,
    mutations,
    actions

}























